<%@page import="java.net.URLEncoder"%>
<%@page import="com.spmanage.util.HttpUtil"%>
<%@page import="com.spmanage.util.DateUtil"%>
<%@page import="com.spmanage.util.BillingUtil"%><%@page import="com.spmanage.util.DbOperation"%>
<%@page import="com.spmanage.util.SqlUtil"%><%@page import="com.spmanage.util.WebAction"%>
<%@page import="com.spmanage.util.StringUtil"%><%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%><%
    	WebAction webAction = new WebAction(request,response);
    
    System.out.println("宜搜接口-上行同步");
   
    String mo = webAction.getParameterString("msg");//用户内容
    String userPhone = webAction.getParameterString("omobile");//用户手机号码
    String spNo = webAction.getParameterString("dmobile");//目的号码,一般为(10669501)地网为10669567
    String linkId = webAction.getParameterString("linkid");//13531418267360667906,20100625144222445137(有逗号的取逗号前面的为LINKID，没有逗号的就全部是LINKID)
    
    String date = DateUtil.nowTimeTransformCharacter(DateUtil.getNow_Timestamp().toString());
    if(mo==null||userPhone==null||spNo==null||linkId==null){
    	response.getWriter().write("1");
    }else{
    	 response.getWriter().write("0");
    	 if(linkId.indexOf(',')>0){
    		 linkId = linkId.substring(0,linkId.indexOf(','));
    	 }
    	//指令处理,返回处理后的指令
    	String strMo = BillingUtil.getMo(spNo, mo);
    	System.out.println("宜搜接口-上行同步：原始上行:"+mo+";处理后的上行："+strMo);
        //获取用户渠道号
        int channelId = BillingUtil.getUserChannel(spNo,strMo);
        //sp标识，类似于网关号
        int spid = BillingUtil.getUserSpId(spNo,strMo);
    	//省份
    	int provinceId = BillingUtil.getProvinceId(userPhone);
       
    	//---------------扣量处理
    	//得到CP渠道扣量比例数
        int cpKouLiangShu = BillingUtil.getCpKouLiangBiLv(channelId);
    	int cpKouLiang = 0;
    	int ischeck = 0;
        //得到CP渠道指令扣量比例数
        int cpMoKouLiangShu = BillingUtil.getCpMoKouLiangBiLv(channelId,spid,strMo);
        if(cpMoKouLiangShu!=0){
        	cpKouLiang = cpMoKouLiangShu;
        	int cpauoid = BillingUtil.getCpAutoId(channelId, spid, strMo);//查询cp对应的autoid，和下面进行区分，以免计数不对
    		ischeck = BillingUtil.getCheckRecv(cpauoid,cpKouLiang);//获取是否要扣量
        }else{
        	cpKouLiang = cpKouLiangShu;
    		ischeck = BillingUtil.getCheckRecv(channelId,cpKouLiang);//获取是否要扣量，这里直接用渠道号
        }
        //---------------
        
        StringBuilder sb = new StringBuilder();
        sb.append("'");
        sb.append(spid);
        sb.append("',");
        sb.append("'");
        sb.append(userPhone);
        sb.append("',");
        sb.append("'");
        sb.append(spNo);
        sb.append("',");
        sb.append("");
        sb.append("getDate()");
        sb.append(",");
        sb.append("'");
        sb.append("msgid");
        sb.append("',");
        sb.append("'");
        sb.append("mid");
        sb.append("',");
        sb.append("'");
        sb.append("1");//cardtype
        sb.append("',");
        sb.append("'");
        sb.append(channelId);//channel
        sb.append("',");
        sb.append("'");
        sb.append("101");//prdid
        sb.append("',");
        sb.append("'");
        sb.append("010");//telid
        sb.append("',");
        sb.append("'");
        sb.append(linkId);//linkid
        sb.append("',");
        sb.append("'");
        sb.append(mo);//上行内容
        sb.append("'");
        sb.append(",");
        sb.append(provinceId);
        sb.append(",");
        sb.append(ischeck);
        
        SqlUtil.executeUpdate("insert into "+BillingUtil.getRecvDay()+"(areaid,org,dest,tm,msgid,mid,cardtype,channel,prdid,teleid,linkid,body,province,ischeck) values("+sb.toString()+")",DbOperation.DB_STAT);
        System.out.println("宜搜接口-上行是否扣量："+ischeck+",cp:"+channelId+",spNo:"+spNo+",mo:"+mo+",渠道扣量比例："+cpKouLiangShu+",指令扣量比例："+cpMoKouLiangShu+",最终比例扣量："+cpKouLiang);
        if(ischeck == 0) {
        	System.out.println("宜搜-上行同步:"+SqlUtil.getStringResult("select cpname from adminuser where id = "+ channelId, 5));
        	String http = BillingUtil.getMoUrlByChannel(channelId);
        	if(http!=null&&http.length()>0) {
        		StringBuilder moUrl = new StringBuilder(http);
        		if(moUrl.indexOf("?")>0){
        			moUrl.append("&userPhone=");
        		}else{
        			moUrl.append("?userPhone=");
        		}
    	    	moUrl.append(userPhone);
    	    	moUrl.append("&spNo=");
    	    	moUrl.append(spNo);
    	    	moUrl.append("&linkId=");
    	    	moUrl.append(linkId);
    	    	moUrl.append("&mo=");
    	    	moUrl.append(URLEncoder.encode(mo,"UTF-8"));
    	    	moUrl.append("&date=");
    	    	moUrl.append(URLEncoder.encode(date,"UTF-8"));
    		    System.out.println("宜搜上行同步："+moUrl.toString());
    		    HttpUtil.getHtmlSource(moUrl.toString(),"UTF-8");
        	}
        	
        }
    }

%>
    